/********************************************************************************
显示错题、错题排行、笔记、大家的笔记、收藏、收藏排行、查找的列表页显示
********************************************************************************/
function TestListData(curPage, showTestCount,easyErrorData) {
	var _testCount = 0;
  var _showCount = showTestCount;
	var _listJsonData = _init();
	var _arrAllTest = _createArrAllTest(_listJsonData);
  /********************************************************************************
	函数名：_init
	功能：初始化试题数据
	输入参数:无
	返回值：jsonAllTest 试题数据
	创建信息：韦友爱（2014-08-20）
	修改记录：黎萍（2015-05-12）增加对执业护士易混易错试题数据的获取控制
	审查人：无
	*******************************************************************************/
	function _init() {
		easyErrorData = G_SetTestInfo.replaceImgURL(easyErrorData);	//设置图片路径
		jsonAllTest = easyErrorData;
		return jsonAllTest;
	}
	/********************************************************************************
	函数名：_getEasyErrorJson
	功能：获取执业护士、临床执业医师、临床执业助理医师易混易错的试题数据
	输入参数: curPage 当前页码
	返回值：处理后的试题数据
	创建信息：黎萍（2015-05-12）
	修改记录：黎萍（2015-06-23）增加图片路径替换
			  黎萍（2015-07-03）修改获取试题总数
			  黎萍（2015-07-08）针对执业护士获取试题总数进行特别处理
	 *******************************************************************************/
	function _getEasyErrorJson(curPage) {
		var testJson = {};
		var testData = [];
		/*if(G_Cookie.getAppEName() === 'ZY_HS'){
			_testCount = _listJsonData.StyleItems[0].TestItems.length;
		}else{*/
			_testCount = _listJsonData.TestCount;
		//}
		testData = _listJsonData.StyleItems.slice((curPage - 1) * 50, curPage * 50);
		return testData;
	}
    /********************************************************************************
    函数名：createArrAllTest
    功能：初始化_arrAllTest数组
    输入参数: 题目json数据,type 标识是错题、收藏、查找试题，易混易错的变量
    创建信息：韦友爱（2014-08-20）
    修改记录：无
    审查人：无
     *******************************************************************************/
    function _createArrAllTest(data) {
	    if(!data){
	         return null;
	    }
	   
    	var index = 0; //数组Numbers的索引
    	var arrAllTest = [];
    	var styleItems = data.StyleItems;
        //if(type==='easyError'){
			if (G_Prg.checkApiPurview('', '易混易错', '') === 2 || G_Prg.checkApiPurview('', '易混易错', '') === 4){
				styleItems = _getEasyErrorJson(curPage);
			} else {
				styleItems = _getEasyErrorJson(1);
			}
		//}
    	for (var i = 0; i < styleItems.length; i++) {
    		var testType = styleItems[i].Type; //题型
    		var testItems = styleItems[i].TestItems;
			
    		for (var j = 0; j < testItems.length; j++) {
    			/*
    			判断试题所属题型，生成数组的值
    			 */
    			if (testType === 'A3TEST') {
    				var a3items = testItems[j].A3TestItems;
    				for (var k = 0; k < a3items.length; k++) {
    					arrAllTest[index] = a3items[k];
                        arrAllTest[index].Title=testItems[j].FrontTitle+'<br>'+arrAllTest[index].Title;
    					arrAllTest[index].ChildTableID = a3items[k].A3TestItemID;
    					arrAllTest[index].ChildTableName = styleItems[i].Type;
    					arrAllTest[index].StyleID = styleItems[i].StyleID;
                        var explain =  a3items[k].Explain;//解题思路
                        if(!explain || explain === '无'){
                            explain = testItems[j].Explain;
                        }
		                arrAllTest[index].Explain = explain === '' ? '无' : explain; //没有解析，设置默认值
                        //arrAllTest[index].Explain = a3items[k].Explain ? a3items[k].Explain:testItems[j].Explain;
    					var answerContent='';
                        var answer = arrAllTest[index].Answer;
                        var selectedItems = a3items[k].SelectedItems;
                        for(var n = 0; n < answer.length; n++){
    					    for (var l = 0; l < selectedItems.length; l++) {
    						    if (answer[n] === selectedItems[l].ItemName) {
    							   if(answerContent){
                                        answerContent = answerContent + '；'+selectedItems[l].Content;
                                    }else{
                                        answerContent=selectedItems[l].Content;
                                    } 
    							    break;
    						    }
    					    }
                        }
                        if(answerContent){
                            arrAllTest[index].Answer=answerContent;
                        }
                        arrAllTest[index].Parameter=testItems[j].AllTestID;
//                        arrAllTest[index].TestItemID=
    					index++;
    				}
    			} else if (testType === 'BTEST') {
    				var bitems = testItems[j].BTestItems;
    				for (var k = 0; k < bitems.length; k++) {
    					arrAllTest[index] = bitems[k];
    					arrAllTest[index].ChildTableID = bitems[k].BTestItemID;
    					arrAllTest[index].ChildTableName = styleItems[i].Type;
    					arrAllTest[index].StyleID = styleItems[i].StyleID;
						var explain =  bitems[k].Explain;//解题思路
                        if(!explain || explain === '无'){
                            explain = testItems[j].Explain;
                        }
		                arrAllTest[index].Explain = explain === '' ? '无' : explain; //没有解析，设置默认值
                        var answer = arrAllTest[index].Answer;
                        var selectedItems = testItems[j].SelectedItems;
                        var answerContent='';
                        for(var n = 0; n < answer.length; n++){
    					    for (var l = 0; l < selectedItems.length; l++) {
    						    if (answer[n] === selectedItems[l].ItemName) {
                                    if(answerContent){
                                        answerContent = answerContent + '；'+selectedItems[l].Content;
                                    }else{
                                        answerContent=selectedItems[l].Content;
                                    } 
    							    break;
    						    }
    					    }
                        }
                        if(answerContent){
                            arrAllTest[index].Answer=answerContent;
                        }
                        arrAllTest[index].Parameter=testItems[j].AllTestID;
    					index++;
    				}
    			} else if (testType === 'ATEST' || testType === 'XTEST') {
    				arrAllTest[index] = styleItems[i].TestItems[j];
    				arrAllTest[index].ChildTableID = -1;
    				arrAllTest[index].ChildTableName = styleItems[i].Type;
    				arrAllTest[index].StyleID = styleItems[i].StyleID;
    				var answer = arrAllTest[index].Answer;
                    var answerContent='';
    				var selectedItems = testItems[j].SelectedItems;
                    for(var n = 0; n < answer.length; n++){
    					for (var l = 0; l < selectedItems.length; l++) {
    						if (answer[n] === selectedItems[l].ItemName) {
                                if(answerContent){
                                    answerContent = answerContent + '；'+selectedItems[l].Content;
                                }else{
                                    answerContent=selectedItems[l].Content;
                                } 
    							break;
    						}
    					}
                    }
                    if(answerContent){
                        arrAllTest[index].Answer=answerContent;
                    }
                    arrAllTest[index].Parameter=testItems[j].AllTestID;
    				index++;
    			} else if (testType === 'JDTEST' || testType === 'PDTEST' || testType === 'TKTEST') {
    				arrAllTest[index] = styleItems[i].TestItems[j];
    				arrAllTest[index].ChildTableID = -1;
    				arrAllTest[index].ChildTableName = styleItems[i].Type;
    				arrAllTest[index].StyleID = styleItems[i].StyleID;
    				if (testType === 'TKTEST') {
    					arrAllTest[index].Answer = G_SetTestInfo.splitTKTestAnswer(arrAllTest[index].Answer); //将填空题的答案进行格式化
    				}
                    arrAllTest[index].Parameter=testItems[j].AllTestID;
    				index++;
    			} else {
    				G_Prg.throw('程序运行错误，TestListData._setArrAllTest：testType = "' + testType + '"，无法解析题型索引');
    			}
    		} //end for testItems
    	} //end for styleItem
    	return arrAllTest;
    }
    
    /********************************************************************************
    函数名：_getAllTest
    功能：获取试题数组
    输入参数: 无
    返回值：无
    创建信息：韦友爱（2014-08-20）
    修改记录：无
    审查人：无
     *******************************************************************************/
    this._getAllTest = function () {
			return _arrAllTest;
	  }
    /********************************************************************************
    函数名：_getTestCount
    功能：获取试题总数
    输入参数: 无
    返回值：无
    创建信息：韦友爱（2014-08-20）
    修改记录：无
    审查人：无
     *******************************************************************************/
	this._getTestCount = function () {
		return _testCount;
	}
}
/********************************************************************************
函数名：iOSreturn
功能：苹果商店功能
输入参数: 无
返回值：无
创建信息：罗天敏（2014-10-27）
修改记录：无
审查人：无
*******************************************************************************/
function iOSreturn(){
    var username=G_Cookie.getUserID();
    var softname=G_Cookie.getAppEName();

    var answer=username+"/"+softname;
    return answer;
}